package com.tbit.uqbike.webmanager.dao.stat;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tbit.config.datasource.DataSource;
import com.tbit.uqbike.object.pojo.dto.OrderAnalysisForOpRepDTO;
import com.tbit.uqbike.object.pojo.dto.OrderAnalysisForOpRepListDTO;
import com.tbit.uqbike.object.pojo.dto.OrderAnalysisQueryDTO;
import com.tbit.uqbike.object.pojo.vo.OrderAnalysisVO;

import java.util.List;

/**
 * 用户订单流失分析Dao
 *
 * @author <a href="mailto:liu.haoxiang@tbit.com.cn">BUGXiang</a>
 * @version 1.0
 * @since 2024-7-11
 */
@DS(DataSource.STAT)
public interface OrderAnalysisDao extends BaseMapper<OrderAnalysisVO> {

    /**
     * 分页查询用户订单流失分析
     *
     * @param orderAnalysisQueryDTO 查询条件
     */
    List<OrderAnalysisVO> queryOrderAnalysis(OrderAnalysisQueryDTO orderAnalysisQueryDTO);

    /**
     * 获取运营报表相关的字段数据
     *
     * @param orderAnalysisQueryDTO
     * @return
     */
    OrderAnalysisForOpRepDTO getOrderAnalysisForOperationReport(OrderAnalysisQueryDTO orderAnalysisQueryDTO);

    /**
     * 获取运营报表相关的字段数据
     *
     * @param orderAnalysisQueryDTO
     * @return
     */
    List<OrderAnalysisForOpRepDTO> getOrderAnalysisForOperationReportBetween(OrderAnalysisQueryDTO orderAnalysisQueryDTO);

    /**
     * 获取运营报表列表相关的字段数据
     *
     * @param orderAnalysisQueryDTO
     * @return
     */
    List<OrderAnalysisForOpRepListDTO> getOrderAnalysisForOperationReportList(OrderAnalysisQueryDTO orderAnalysisQueryDTO);
}
